package com.coolw.dynamic.thread.pool.domain.response;

import com.coolw.common.api.BaseDomain;
import com.coolw.dynamic.thread.pool.enums.KeepAliveTimeUnitEnum;
import com.coolw.dynamic.thread.pool.enums.QueueTypeEnum;
import com.coolw.dynamic.thread.pool.enums.RejectedExecutionHandlerEnum;
import lombok.Getter;
import lombok.Setter;

import java.util.Date;

/**
 * 线程池统计信息实体类
 *
 * @author coolw
 * @date 2024/5/15 14:35
 */
@Getter
@Setter
public class ThreadPoolStatrResponse extends BaseDomain {
    private static final long serialVersionUID = -1964264911754441348L;

    /**
     * 统计编号
     */
    private String statNo;

    /**
     * 统计批次号
     */
    private String batchNo;

    /**
     * 统计开始时间;yyyy-MM-dd HH:mm:ss
     */
    private Date statStartTime;

    /**
     * 统计结束时间;yyyy-MM-dd HH:mm:ss
     */
    private Date statEndTime;

    /**
     * 线程池编号
     */
    private String poolNo;

    /**
     * 线程池代码
     */
    private String poolCode;

    /**
     * 线程池名称
     */
    private String poolName;

    /**
     * 核心线程数
     */
    private Integer corePoolSize;

    /**
     * 最大线程数
     */
    private Integer maxPoolSize;

    /**
     * 线程存活时间
     */
    private Long keepAliveTime;

    /**
     * 线程存活时间单位 {@link KeepAliveTimeUnitEnum}
     */
    private String keepAliveTimeUnit;

    /**
     * 队列类型 {@link QueueTypeEnum}
     */
    private String queueType;

    /**
     * 队列大小
     */
    private Integer queueSize;

    /**
     * 拒绝策略 {@link RejectedExecutionHandlerEnum}
     */
    private String rejectStrategy;

    /**
     * 线程池中活动线程数量
     */
    private Integer activeCount;

    /**
     * 已执行完成的任务量
     */
    private Long completedTaskCount;

    /**
     * 执行的任务量(包括正在执行的任务)
     */
    private Long taskCount;

    /**
     * 线程池中曾有过的最大线程量
     */
    private Integer largestPoolSize;
}
